import { NestFactory } from '@nestjs/core';
import { AppModule } from './app.module';
import { ValidationPipe } from '@nestjs/common';
import { ResponseInterceptor } from './response.interceptor';
import * as fs from 'fs';
import * as path from 'path';

async function bootstrap() {
  const app = await NestFactory.create(AppModule, {
    httpsOptions: {
      key: fs.readFileSync(
        path.resolve(__dirname, '../cert/192.168.0.100-key.pem'),
      ),
      cert: fs.readFileSync(
        path.resolve(__dirname, '../cert/192.168.0.100.pem'),
      ),
    },
  });

  // 启用 CORS（可以根据需要配置特定的域名或启用所有域名）
  app.enableCors();

  // 使用全局管道（全局验证请求）
  app.useGlobalPipes(
    new ValidationPipe({
      transform: true, // 将请求体转换为 DTO 类型
    }),
  );

  // 使用全局拦截器（自定义响应处理）
  app.useGlobalInterceptors(new ResponseInterceptor());

  // 监听所有 IP 地址并使用指定的端口（默认3000，或者使用环境变量中的 PORT）
  await app.listen(process.env.PORT ?? 3000, '0.0.0.0');
}
bootstrap();
